/**
 * 要求构造一个完全二叉树，将[1...N]分配到节点上
 * 使得除了根之外，所有节点与其父节点乘积为偶数
 * 考虑分层构造，一层奇一层偶，毫无疑问肯定有数不够用
 * 本质上只需要把奇数安排好就行，且尽量将其安排在叶子节点
 * 对二叉树：n0 = n2 + 1
 * 且对完全二叉树：n1 = 1 or 0
 * 所以完全二叉树的叶子节点： n0 = (n + 1) / 2 或者 n / 2
 * 刚好足够把所有奇数安排在叶子上，因此必然满足条件
 * 考虑到题目要求输出层次遍历，因此直接先输出偶数再输出奇数即可
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using Real = double;
using llt = long long;
using pii = pair<int, int>;
using vi = vector<int>;

int N;
void proc(){
    for(int i=2;i<=N;i+=2)cout<<i<<" ";
    for(int i=1;i<=N;i+=2)cout<<i<<" ";
    return (void)(cout<<"\n");
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofakse = 1;
    // cin >> nofakse;
    while(nofakse--){
        cin >> N; proc();
    }
    return 0;
}